package note_002;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class day09 {
    public static void main(String[] args) {

        int[] allOut = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int pw = 6;
        System.out.println(Arrays.toString(allOut));
        allOut = Arrays.copyOf(allOut, allOut.length + 1);
        for (int i = 0; i < allOut.length; i++) {
            if (allOut[i] == pw) {
                allOut[i] = allOut[allOut.length - 1];

                allOut = Arrays.copyOf(allOut, allOut.length - 1);
                break;
            }
        }
        System.out.println(Arrays.toString(allOut));
    }
    /**
     * 集合:
     * Java.util.Collection接口，该接口是所有集合的顶级接口，里面规定了所有集合都应当具备的功能方法。
     * 集合与数组一样，可以保存一组元素，但是不同种类的集合实现了不同的数据结构，实际开发中选择更多。
     * Collection下面有两个常见的子接口:
     * java.util.List:线性表，可以存放重复元素且有序。
     * java.util.Set:不可存放重复元素。
     * 元素是否重复是以元素自身equals比较的结果而定的.
     * ----equals:为true的两个元素就认定为重复元素.
     */
    /** Java.util.Collection:所有集合的顶级接口 */
//    Collection o = new ArrayList();//----集合
    /** boolean add(E e)
     * 向当前集合中添加一个元素，该元素成功添加到集合中则返回true.
     */
//        o.add("one");
//        o.add("two");
//        o.add("three");
//        o.add("四");
//        o.add("five");
//        o.add("6");
//        System.out.println(o);
    /** int size() 返回当前集合的元素个数 */
//    int size = o.size();
//        System.out.println("size:"+size);
    /** boolean isEmpty
     * 判断当前集合是否为空集(当且仅当size==0时,isEmpty()返回true)
     * 判断是否有元素
     */
//    boolean isEmpty = o.isEmpty();
//        System.out.println("isEmpty:"+isEmpty);
    /** .clear():清空 */
//        o.clear();
    /**
    * 集合受元素equals方法影响的相关操作.
    */
    /** 集合重写了toString()方法 */
    /*
     集合重写了toString()方法,返回的字符串格式为:
     [元素1.toString(),元素2.toString(),元素3.toString(),......]
     */
    /** boolean contains(Object o) 判断当前集合是否包含给定元素
     * 根据equals重写情况:1.如果没重写，则默认比较"==".
     *                  2.在测试类重写，则比较内容是否相同.
     */
    /*
      boolean contains(Object o)
      判断当前集合是否包含给定元素，判断依据是给定元素是否与集合现有元素存在equals比较为
      true的情况，存在则认为包含.
      Point p = new Point(1,2);
        boolean contains = c.contains(p);
        System.out.println("包含:"+contains);
      */
    /** remove() 从集合中删除给定元素,(List)重复元素仅删除一次 */
        /*
         boolean remove()
         从集合中删除给定元素，删除的是与集合中equals比较为true的元素。
         对于List集合而言，如果存在重复元素仅删除一次。
         当有元素被删除时发放返回true.
         c.remove(p);// 当有元素被删除时发放返回true.
         System.out.println(c);
         */
    /**
     * 集合只能存放引用类型元素.(存放基本类型时会自动装箱为包装类保存在集合中)
     * 并且集合存放的是元素的引用(地址)而不是实例本身.
     */
    /*
    ---------------c->引用(地址),而不是实例本身
        Collection c = new ArrayList();
        Point p = new Point(1,2);
        c.add(p);//存放的是p的地址
        System.out.println(c);//sout:输出则c通过地址指向 new Point
        System.out.println(p);
        p.setX(2);
        System.out.println(p);//通过地址,修改的是new Point中的x
     */
}
